
package tp.igl;

/**
 *<b> NbrMagic est la classe représentant le nombre Magic utilisé pour le calcul des sous-réseaux</b>
 * <p>
 *  un Nombre Magique est caractérisé par
 * <ul>
 *  <li>Une valeur</li>
 *  <li>Un numéro d'Octet</li>
 * </ul>
 * </p>
 * @author Redouane
 * @see Masque
 */
public class NbrMagic {
    private final int val;
    private final int oc;

    /**
     *Constructeur NbrMagic
     * <p>
     * A la construction , il créera un nombre magic avec les caracteristiques de ses paramètres. 
     * </p>
     * @param val La valeur du nombre 
     * @param oc le numéro d'octet
     */
    public NbrMagic(int val, int oc) {
        this.val=val;
        this.oc=oc;
    }

    /**
     *Retourne la valeur
     * @return la valeur du Nombre Magic
     */
    public int getVal() {
        return val;
    }

    /**
     *Retourne le numéro de l'octet
     * @return numéro de l'octet
     */
    public int getOc() {
        return oc;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 29 * hash + this.val;
        hash = 29 * hash + this.oc;
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final NbrMagic other = (NbrMagic) obj;
        if (this.val != other.val) {
            return false;
        }
        if (this.oc != other.oc) {
            return false;
        }
        return true;
    }
 
}
